草庐IT

Dev Box 服务

全部标签

memory - 如何让我的服务器(用 Golang 编写)不会耗尽内存?

我有一个小型服务器,它必须处理大量文件。这些文件通过PUT请求发送到服务器。我正在为服务器使用net/http包。我知道对于每个请求都会打开一个goroutine。但问题是请求完成后,处理程序使用的内存没有释放。服务器(应该)在具有1GB内存的树莓派3上运行。问题是当我发送大量文件时内存不足。此时我已经等不及垃圾收集器释放内存了。这两个主题是关于问题的:Whyisthememoryblocknotcleanedbythegarbagecollector?Go1.3Garbagecollectornotreleasingservermemorybacktosystem但是我的问题没有解决

go - 非对等服务器上的分布式计算

我有一组任务,每个任务都需要满足某些特定条件。例如,任务需要100Mb的RAM才能执行。我还有多个放置worker的服务器。每个worker都有一些配置来描述它拥有多少资源。例如,一些工作人员可以使用1Gb的RAM来执行任务。是否有在worker之间分配任务的系统,以便每个worker满足传递给它的任务的要求?或者也许我可以通过消息代理(例如RabbitMQ)以某种方式做到这一点?我知道为此编写自己的应用程序,因为我不想重新发明轮子。Worker是用Go编写的。 最佳答案 RabbitMQ并没有明确地知道关于它的客户端的这些事情。它

ios - 如何使用 NSData 在我的 Golang 服务器上读取我从 iOS 发布的 JSON?

我正在尝试通过将收据从iOS发送到我的自定义服务器来验证收据。我有我的NSMutableURLRequest并将其设置为:letbody:[String:AnyObject]=["receipt":receipt,"prod_id":productID]letoptionalJson:NSData?do{optionalJson=tryNSJSONSerialization.dataWithJSONObject(body,options:[])}catch_{optionalJson=nil}guardletjson=optionalJsonelse{return}request.HT

go - 无法对允许向服务器发送文本消息的客​​户端进行编程

所以我编写了一个服务器,它从连接的客户端接收文本消息,将它们反转并大写,然后发回。现在我正在尝试对客户端进行编程,以便在我启动它时它会一直运行,直到我将其关闭(ctrl+c)并允许我输入文本行并将它们发送到服务器。但我有一个问题-如果我将一个西里尔符号传递给输入,它将返回一个(类型,值)错误,除非我以某种方式刷新内存,否则将一直存在错误。我也不知道如何读取整条消息(整条消息意味着slice的大小(1024字节))而不是单独读取每个单词。此外,我如何确定如何延迟“输入您的消息”文本?根据我传递给服务器的消息的长度,它应该等待更长或更短。如果消息被分成几条消息,我不希望它在收到答案后只弹出

Go - Web 服务器在同一端口上监听多个协议(protocol)(HTTP 和 RTMP)

我正在尝试在Go中实现RTMP协议(protocol)以配合我的Web应用程序,但是我似乎无法找到在同一端口上同时处理HTTP和RTMP的解决方案。这个想法是这样的。packagemainimport("fmt""io""net/http")funcmain(){http.HandleFunc("/",func(whttp.ResponseWriter,r*http.Request){io.WriteString(w,"Hello!")})http.HandleFunc("/rtmp",func(whttp.ResponseWriter,r*http.Request){//RTMPha

jquery - javascript 和 revel golang 服务器之间的长轮询

我正在尝试进行ajax调用(使用jquery)并在响应到达时立即呈现来自服务器的响应。在服务器中,我会在它们准备好后立即发送不同的响应。如果我使用curl发出请求,我可以看到它们是如何在屏幕响应中打印的。但是我不能使用jqueryajax做类似的事情。服务器上的代码是这样的:flusher,ok:=app.Response.Out.(http.Flusher)if!ok{panic("expectedhttp.ResponseWritertobeanhttp.Flusher")}app.Response.Out.Header().Set("Connection","Keep-Alive

html - 嵌入数据或不嵌入数据什么是服务/解析动态内容的最佳实践

我开始使用go用于提供动态html内容、解析模板、替换变量等。到目前为止一切都很好,我发现我可以创建一个二进制文件并通过使用像go-bindata这样的包来部署一个包含所有静态文件的文件。.但是当谈到性能时,应遵循哪些最佳实践?如果我是对的,拥有一个嵌入所有静态内容的二进制文件将导致文件更大。拥有一个需要/依赖于仅在启动时解析模板(*.tpl)的二进制文件,其大小可能较小,但需要与所有静态内容一起提供。如果空间是唯一的区别,在某些情况下使用单个二进制文件看起来更舒服,但我不是该主题的专家,我想知道一些最佳实践以遵循并关注性能. 最佳答案

authentication - 扩展 Rancher 的授权服务以使用其他 (OAuth) 提供商

我们的团队目前正在寻求将Rancher用于Docker容器编排解决方案,我想做的一件事是尝试使用Rancher不支持的提供程序在Rancher服务器上设置访问控制时刻(这是FiwareLab,它可以是OAuth提供者)。Rancher在thisrepo中可用的单独Golang服务中处理身份验证.这可以扩展为允许新的提供程序进行身份验证,如repo的wiki中所述。然而,令我感到困惑的是,我如何才能使用RancherServer部署我的扩展服务。是否可以只运行扩展服务而不必完全为RancherServer构建新的Docker镜像? 最佳答案

ubuntu - 服务 upstrat 进程退出,错误代码

我在upstart中添加了ponzu-server,但是我启动ponzu-server时出现了一些错误。sudoserviceponzu-serverstartJobforponzu-server.servicefailedbecausethecontrolprocessexitedwitherrorcode.See"systemctlstatusponzu-server.service"and"journalctl-xe"fordetails.journalctl-xe:Jan2819:12:22cs67724systemd[1]:ponzu-server.service:Unite

nginx - Beanstalk 中的负载均衡 go 服务器

我正在尝试在使用GRPC/Protobuf进行数据序列化的AWSbeanstalk中对go服务器进行负载平衡。Beanstalk提供nginx作为客户端-服务器通信的反向代理,它使用http1.1协议(protocol)。这导致在代理和服务器之间交换虚假消息,但客户端消息似乎永远不会按预期到达服务器。任何干净的想法都会在这里有所帮助。 最佳答案 Nginx还不支持后端的http/2。我们中的一些人正在努力解决这个问题,但还需要四分之一的时间才能到达上游。您可以等待或使用Envoy(https://github.com/lyft/en